Large scale data centers are a relatively new human artifact, and their organization and structure has evolved rapidly as the commercial opportunities they provide has expanded. Typical modern data centers are organized collections of clusters of hardware running collections of standard software packages, such as web servers, database servers, etc., interconnected by high speed networking, routers, and firewalls. A typical data centers operates in response to requests where requests are routed to resources such as files, modules, etc., in the data center. Some of these resources may be migratable, i.e., they may be migrated via a network from one data center to another.
Web services (e.g., software as a service “SaaS”) supported by data centers are also rapidly evolving (for example, a company might first offer a search service, and then an email service, and then a Map service, etc.). When a service reaches a certain size, a decision is often made to geo-host the service, i.e., to host the service at multiple, geographically disparate data centers. Further, as new data centers come on-line, a service operator may decide to expand its services to one or more new data centers, while maintaining or abandoning hosting of the service at other data centers. Competition as to cost and performance (i.e., value) can also be a factor in locating a service and associated resources. Given this environment, large, geo-hosted services tend to exist in sub-optimal states where many users and the resources they request have no or little geographical correspondence. For example, a user in San Francisco, Calif. may have a mailbox for her email service hosted in Blue Ridge, Va. When such a scenario is placed into context, one may conclude that hundreds of thousands of users may be geographically remote from their resources, which can greatly diminish user experience and increase a service's operational costs.
Various exemplary technologies described herein pertain to techniques that can decide whether to migrate resources from one data center to another data center, which, in turn, may enhance user experience and performance of the “cloud” (e.g., the Internet and associated data centers).